package org.jeecg.modules.fk.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.basesource.entity.FpCjDto;
import org.jeecg.modules.fk.entity.DjOrg;
import org.jeecg.modules.fk.entity.dto.AuthOrgCountDTO;
import org.jeecg.modules.fk.entity.req.DjUserAssignRequest;
import org.jeecg.modules.fk.entity.vo.AuthOrgCountVO;

import java.util.List;

/**
*
*/
public interface IDjOrgService extends IMppService<DjOrg> {

    List<DjOrg> listForPage(DjOrg djOrg);

    List<DjOrg> listForPageWithOrder(DjOrg djOrg, String orderColumn, String orderType);

    /**
     * 分页查询
     * @param page
     * @param djOrg
     * @param orderColumn
     * @param orderType
     * @return
     */
    IPage<DjOrg> page2(Page<DjOrg> page, DjOrg djOrg, String orderColumn, String orderType);

    void setDjUser2SysUser(DjUserAssignRequest req);

    AuthOrgCountVO authOrgCount(AuthOrgCountDTO dto);

    DjOrg getByNsrsbhOrShxydm(String nsrsbhOrShxydm);

    /**
     * 通过分片数获取数据 (增量)
     */
    List<DjOrg> incrementListByShardTotal(FpCjDto dto);

    /**
     * 通过分片数获取数据 (全量)
     * @param dto
     * @return
     */
    List<DjOrg> fullDoseListByShardTotal(FpCjDto dto);

    /**
     * 通过ID更新信息
     * @param djOrg
     */
    void updateDjorgById(DjOrg djOrg);
}
